1. Field of the Invention
The present invention generally relates to application servers. More particularly, the present invention provides a method, system, and computer program product for providing quality of service guarantees at the application level for clients of application servers.
2. Related Art
As businesses are outsourcing their information technology (IT) solutions, it is becoming even more important for application providers to focus on the performance requirements demanded by their clients. This problem is even more complex when several applications are concurrently running on the same server and there is a quality of service (QoS) requirement to be met for each application. Such a server system 10 is depicted in FIG. 1, wherein a plurality of clients 12 are accessing a plurality of different applications 14 on an application server 16, and wherein each application 14 has a distinct QoS requirement (e.g., Application 1: QoS 1; Application 2: QoS 2; Application n: QoS n). Business subscribers (a body of clients) of application providers are usually interested in the maximum throughput rate (transactions/second) an application can handle. Clients, however, are usually interested in the average response time when accessing an application on a server.
Enterprise Resource Planning (ERP) applications are an excellent example of applications that require QoS. ERP applications need to be kept available to complete mission-critical business transactions. More specifically, it is a business requirement to avoid slow or incomplete transactions and session timeouts for ERP clients, which can lock a record in an open state that requires manual intervention. Other mission critical applications that require QoS are used, for example, in financial services, manufacturing, entertainment, and e-commerce.
QoS is specific measure of response time or throughput rate. It represents the ability of a network element such as a host, router, or application to have some level of assurance that its service requirements can be satisfied. Each application type will generally have a different QoS requirement. Usually the services provided by the servers for the clients fall into two categories:    (1) Retrieval of information; and    (2) Performance of computations.An application in category (1) may have a QoS that is drastically different than that of an application in category (2). Requests for a service in category (1) are normally short-lived since they are static and non-interactive. Requests for a service in category (2) are not normally as short-lived as those of category (1), and they usually have longer response times. Each service type has a QoS requirement that is independent of the system load.
Current QoS methodology focuses on the area of bandwidth allocation at the network transmission level to meet QoS requirements. Such methods either over-allocate network bandwidth or prioritize network traffic to meet QoS requirements in peak load periods. Unfortunately, QoS assurances at the application level, especially when there are several types of traffic sources competing for a single server (e.g., as shown in FIG. 1), have not been addressed.